package com.auto.survey.activity.monitoring.entity

import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index
import androidx.room.PrimaryKey

/**
 * 报警阈值实体类，对应数据库中的ATS_WarningThreshold表
 * 为每个测点设置变形监测的报警阈值
 */
@Entity(
    tableName = "ATS_WarningThreshold",
    foreignKeys = [
        ForeignKey(
            entity = MonitoringPoint::class,
            parentColumns = ["pointId"],
            childColumns = ["pointId"],
            onDelete = ForeignKey.CASCADE
        )
    ],
    indices = [Index(value = ["pointId"])]
)
data class ATS_WarningThreshold(
    /**
     * 阈值ID，主键，自增长
     */
    @PrimaryKey(autoGenerate = true) val thresholdId: Int = 0,
    /**
     * 关联的测点ID，外键关联ATS_POINT表
     */
    val pointId: Int,
    /**
     * 报警类型（位移、沉降、倾斜等）
     */
    val warningType: String,
    /**
     * 单次位移报警阈值（米）
     */
    val singleDisplacementWarning: Double,
    /**
     * 累计位移报警阈值（米）
     */
    val cumulativeDisplacementWarning: Double,
    /**
     * 位移速率报警阈值（米/天）
     */
    val displacementRateWarning: Double,
    /**
     * 是否启用报警（true:启用，false:禁用）
     */
    val isEnabled: Boolean = true,
    /**
     * 创建时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val createTime: String,
    /**
     * 更新时间，格式：YYYY-MM-DD HH:MM:SS
     */
    val updateTime: String
)